package com.timeriver.service;

import com.timeriver.domain.dto.SparkModelDto;
import com.timeriver.domain.vo.ModelsVO;
import com.timeriver.domain.vo.UploadFileVO;
import com.timeriver.domain.vo.VersionVO;
import org.springframework.data.domain.PageRequest;

import java.util.List;

public interface ModelService {

    /**
     * 保存模型文件信息
     * @throws Exception
     */
    void saveModelInfo(SparkModelDto sparkModel) throws Exception;

    /**
     * 上传解压ZIP文件
     * @param uploadFile
     */
    void uploadFile(UploadFileVO uploadFile) throws Exception;

    /**
     * 返回模型列表
     * @param pageRequest
     * @return
     * @throws Exception
     */
    ModelsVO getModelList(PageRequest pageRequest) throws Exception;

    /**
     * 返回模型列表
     * @param pageRequest
     * @return
     * @throws Exception
     */
    ModelsVO getModelList(PageRequest pageRequest, String search) throws Exception;

    /**
     * 删除模型文件：逻辑删除
     * @param id
     * @throws Exception
     */
    void deleteModel(String id) throws Exception;

    /**
     * 获取模型文件的多个版本
     * @param id
     * @return
     */
    List<VersionVO> getModelVersion(String id) throws Exception;

    /**
     * 设置模型当前使用的版本号
     * @param id
     * @param version
     */
    Integer setModelVersion(String id, Integer version) throws Exception;
}
